|
CATIA V5 Programmierung : Parameter für GetTechnologicalObject
Tapani. am 22.05.2006 um 10:00 Uhr (0)
Hallo allerseits.Da ich in der CATIA Hilfe nur wenige Hinweise gefunden habe, welche Objekte über Product.GetTechnologicalObject(string ) ansprechbar sind, habe ich mir mal die Mühe gemacht und per Script versucht eine vollständige Liste der Strings hinzukriegen:AnnotatedViewsArrangementProductAssemblyFeaturesClashesClashResultsDistancesDMUReviewsGroupsInertiaMarker3DsMechanismsMergesOffsetsSectionsSilhouettesSimplificationsSpatialQuerySweptVolumesThicknessesThreeDCutsVibrationVolumesWrappingsSampledsTrack ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parameter schnell ansprechen
Tapani. am 24.05.2006 um 14:46 Uhr (0)
Hallo Legat,als ersten Tip würde ich versuchen so viel wie möglich von den CATIA-Objekten in Variablen zwischen zu speichern:statt in der SchleifeCode:set Param = CATIA.ActiveDocument.Part.Parameters.Item(...)lieberCode:set paramsCol = CATIA.ActiveDocument.Part.Parametersaußerhalb der Schleife und dann Code:paramsCol.Item(...)innerhalb der Schleife.Aber ob das den erwünschten Effekt bringt ist fraglich, deshalb noch eine weitere, aber wesentlich kompliziertere Möglichkeit:Du bildest zuerst von allen Parame ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Geometrische Sets erstellen
Tapani. am 05.07.2006 um 11:42 Uhr (0)
moin,die Antwort auf deine erste Frage steht unter http://ww3.cad.de/foren/ubb/Forum137/HTML/001748.shtml#000002 (Geometrisches Set = HybridBody)und zur zweiten Frage: "Cameras" bzw. Viewer sind die Stichwörter für die Scripting-Hilfe. Cameras sind eine Property des Document-Objektes und Viewers (bzw. ActiveViewer) eine Property des Window-Objektes.Hier noch ein Code-Schnipsel zum Erzeugen und Überprüfen der Views:Code:sub CATMain() CATIA.ActiveWindow.ActiveViewer.NewCamera set cams = CATIA.ActiveDocument. ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Geometrische Sets erstellen
Tapani. am 05.07.2006 um 16:46 Uhr (0)
moin,das mit den querverweisen muss ich noch mal üben :-)zu den Sets: Wenn du die HybridBodies-Collection hast, kannst du ja in einer Schleife durchgehen, und die Namen aller bereits vorhandenen HybidBody-Objekte mit deinen Pflicht-Sets vergleichen.so à laCode:dim ar()pflichtnamen="Becks:Jever:Budwiser:Erdinger"set hybs = mypart.HybridBodiesa = split,(pflichtnamen,":")for j = 1 to UBound(a)if hybs.Count 0 then found = 0 for i = 1 to hybs.Count if a(j) = hybs.Item(i) then found = 1 end if nextend ifif ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Assembly-Design - Sectioning -> Schnitte durch Makro als CATPart abspeicher
Tapani. am 10.07.2006 um 14:08 Uhr (0)
moin,beim Recorden von Makros werden für den Zugriff per .Item immer die Namen der Objekte verwendet, z.B. Documents.Item("Product1.CATProduct"). Beim zweiten Durchlauf des Makros heißt das Objekt aber meist anders z.B. "Product2.CATProduct". Willst du nur auf das aktuelle Dokument zugreifen ist CATIA.ActiveDocument.... der einfachste Weg. Und wenn du über alle Elemente eine Collection interieren willst, bietet sich der Zugriff über den Index an: For i = 1 to Documents.Count dosomething Documents.Item(i)ne ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Assembly-Design - Sectioning -> Schnitte durch Makro als CATPart abspeicher
Tapani. am 11.07.2006 um 10:44 Uhr (0)
moin,was du bräuchtest ist wohl die Funktion AddNewSplit oder AddNewHybridSplit des Objektes ShapeFactory bzw. HybridShapeFactory. Wie das genau geht findest du dann in der Hilfe unter den beiden letztgenannten Objekten.z.B. set hybFact = CATIA.ActiveDocument.Part.HybridShapeFactory (angenommen ein CATPart ist geöffnet)set newSplit = hybFact.AddNewHybridSplit(Ref1,Ref2,1)wobei Ref1 & 2 Referenzen auf das zu schneidende Objekt bzw. die Ebene sind. Am besten erzeugt mit CATIA.ActiveDocument.Part.CreateRefere ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Assembly-Design - Sectioning -> Schnitte durch Makro als CATPart abspeicher
Tapani. am 11.07.2006 um 15:48 Uhr (0)
moin,nö, sind sie nicht.Dann musst du mit GetTechnologicalObject arbeiten. z.B. set secs = CATIA.ActiveDocument.Product.GetTechnologicalObject("Sections") Annahme: das ActiveDocument ist ein CATProduct!Mit einer der Add-Funktionen des Sections-Objektes kannst du dann eine neue Section erstellen und danach an deren Properties rumschrauben... z.B. SetPosition zum setzen der SchnittebeneAllerdings entsteht dabei keine geschnittene Geometrie, d.h. die bestehende Geometrie wird nicht verändert. Außerdem ist m. ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Parameter aus Part auslesen
Tapani. am 13.07.2006 um 17:16 Uhr (0)
moin,an die Parameter eines Parts kommst du mitCode:set secs = CATIA.Documents.Item("Slider.CATPart").Part.Parameters.Item("Radius")msgbox secs.NameDa du die Objekte des Strukturbaums alle abgrasen willst, ist es ratsam statt der Strings in den Item-Statements Zahlenwerte zu nehmen. Collections fangen immer bei 1 an und z.B. CATIA.Documents.Count gibt die Anzahl der vorhandenen Elemente an.Gerade für das abgrasen aller Elemente des Strukturbaums lege ich dir den Eintrag zu ReferenceProduct in der "Product" ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Anfängerfrage: Product speichern
Tapani. am 13.07.2006 um 17:26 Uhr (0)
moin,Jedes CATIA-Document-Objekt hat eine Property "Saved" die angibt ob das entsprechende Dokument gespeichert werden muss oder nicht und weiterhin eine Methode "Save" die das Dokument abspeichert. Eine kleine Schleife über alle Dokumente der Documents-Collection und du bist fertig. Falls mehrere (unabhängige) Dokumente geöffnet sind, sollte man jedoch den Strukturbaum des zu speichernden Product-Dokumentes abgrasen und so nur die zu dem entsprechenden Product gehörigen Dokumente ermitteln und dann abspei ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : 3D_Space während Makrodurchlauf freigeben
Tapani. am 13.07.2006 um 18:09 Uhr (0)
moin,ja, die gibts: du schreibst das ganze nicht als catvbs-Makro, sondern als vbs-Makro. Das kann man dann außerhalb der CATIA starten (wenns unbedingt sein muss kann man sich auch noch einen wrapper schreiben, der das ganze aus CATIA heraus startet) und dann blockiert das Script nicht die CATIA, so das man drehen kann, wie man lust hat.Das ganze sieht dann in etwas so aus:Code: On Error Resume Next Set CATIA = GetObject("", "CATIA.Application") iErr = Err.Number If (iErr 0) Then On Error Goto 0 set CA ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Assembly-Design - Sectioning -> Schnitte durch Makro als CATPart abspeicher
Tapani. am 14.07.2006 um 10:58 Uhr (0)
moin,hier der einfachste Fall: ein Product mit einem Part, im Part ist belibige Geometrie im Hauptkörper definiert und im ersten Hybridbody (Geometrisches Set in der Übersetzung) ist die Schnittebene als Ebene definiert.Code:sub CATMain() Dim fa(2), sa(2), op(2), mat(11) set plane1 = CATIA.ActiveDocument.Product.Products.Item(1).ReferenceProduct.Parent.Part.HybridBodies.Item(1).HybridShapes.Item(1) plane1.GetFirstAxis fa plane1.GetSecondAxis sa plane1.GetOrigin op set secs = CATIA.ActiveDocument.Product.Ge ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Do Until Schleife, Ausgans-Prüfkriterium
Tapani. am 18.07.2006 um 10:24 Uhr (0)
moin,dein E liefert den Status des Select-Commands, d.h. "Normal", "Cancel" etc. und nicht den Typ des Selected Element. Um das rauszukriegen gibts die VBS-Funktion typename. Auch brauchst du bei SelectElement2 nicht EndSelectElement zu verwenden. Und wenn du mit VB-Script arbeitest sollten Dim-Statements kein "as" enthalten. Gibt bei mir zumindest einen kritischen Fehler.Dann sieht dein Script folgendermaßen aus:Code:Sub CATMain() Dim Ref(0) Ref(0)= "AnyObject" Do Set UserSel=CATIA.ActiveDocument.S ...
|
In das Form CATIA V5 Programmierung wechseln |
|
CATIA V5 Programmierung : Join: Flächen aus Parts importieren
Tapani. am 20.07.2006 um 09:08 Uhr (0)
moin,das Problem liegt, wie du schon richtig erkannt hast darin, das im Click-Interface implizit einige Schritte durchgeführt werden, die vom Recorder nicht aufgezeichnet werden. In der Regel sind diese Schritte aber auch durch das Script erreichbar, man muss sie eben nur komplett per Hand erstellen, da der Recorder versagt...So, aber nun zum Problem:Wenn die eine Fläche in einem anderen Part liegt, musst du sie zuerst kopieren und dann per Paste Special als "as Result" in dem anderen Part einfügen. Aus ir ...
|
In das Form CATIA V5 Programmierung wechseln |